package vistas.ui;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import controladores.ControladorAgregarClienteFrame;
import controladores.ControladorBorrarCategoriaFrame;
import controladores.interfaces.ControladorAdministradorCategorias;
import controladores.interfaces.ControladorAdministradorClientes;
import entidades.Categoria;

public class AgregarClienteFrame extends JInternalFrame{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	// ATRIBUTOS - componentes
	private JLabel lblCuit;
	private JTextField txtCuit;
	private JLabel lblNombre;
	private JTextField txtNombre;
	private JLabel lblRazonSocial;
	private JTextField txtRazonSocial;
	private JLabel lblDireccion;
	private JTextField txtDireccion;
	private JLabel lblTelefono;
	private JTextField txtTelefono;
	private JLabel lblFax;
	private JTextField txtFax;
	private JLabel lblEmail;
	private JTextField txtEmail;
	private JLabel lblCategoria;
	private JComboBox cmbCategoria;
	private JButton btnAceptar;
	private JButton btnCancelar;
	
	// CONSTRUCTOR - levanta la interfaz
	
	public AgregarClienteFrame(){
		
		super();
	
		// Caracteristicas de la ventana - Propiedades
		this.setTitle("Agregar nuevo cliente");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setSize(400,400);
				
		// Inicializo elementos de la ventana
		lblCuit = new JLabel("CUIT:");
		txtCuit = new JTextField();
		lblNombre = new JLabel("Nombre:");
		txtNombre = new JTextField();
		lblRazonSocial = new JLabel("Razon Social:");
		txtRazonSocial = new JTextField();
		lblDireccion = new JLabel("Direccion:");
		txtDireccion = new JTextField();
		lblTelefono = new JLabel("Telefono:");
		txtTelefono = new JTextField();
		lblFax = new JLabel("Fax:");
		txtFax = new JTextField();
		lblEmail = new JLabel("Email:");
		txtEmail = new JTextField();
		lblCategoria = new JLabel("Categoria:");
		

		cmbCategoria = new JComboBox();
		ControladorAdministradorCategorias contCategorias = new ControladorBorrarCategoriaFrame();
		Vector<Categoria> categorias = new Vector<Categoria>();
		categorias = contCategorias.obtenerCategorias();
		for(Categoria cat : categorias){
			cmbCategoria.addItem(cat.getNombre());			
		}
		
		btnAceptar = new JButton("Aceptar");
		btnCancelar = new JButton("Cancelar");
		
		// Obtencion del content pane
		Container contenedor = this.getContentPane();
		
		// Definicion del layout
		contenedor.setLayout(new GridLayout(9, 2, 5, 5));
		
		// Cargo los elementos en la ventana
		contenedor.add(lblCuit);
		contenedor.add(txtCuit);
		contenedor.add(lblNombre);
		contenedor.add(txtNombre);
		contenedor.add(lblRazonSocial);
		contenedor.add(txtRazonSocial);
		contenedor.add(lblDireccion);
		contenedor.add(txtDireccion);
		contenedor.add(lblTelefono);
		contenedor.add(txtTelefono);
		contenedor.add(lblFax);
		contenedor.add(txtFax);
		contenedor.add(lblEmail);
		contenedor.add(txtEmail);
		contenedor.add(lblCategoria);
		
		contenedor.add(cmbCategoria);
		
		contenedor.add(btnAceptar);
		contenedor.add(btnCancelar);
		
		// Manejo de los eventos
		btnCancelar.addActionListener(new ActionListener() 
		{			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				dispose();
			}
		});
		
		btnAceptar.addActionListener(new ActionListener() 
		{			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				ControladorAdministradorClientes controlador = new ControladorAgregarClienteFrame();
				controlador.cargarNuevoCliente(txtCuit.getText(), txtNombre.getText(), txtRazonSocial.getText(), 
											txtDireccion.getText(), txtTelefono.getText(), txtFax.getText(), txtEmail.getText(),(String) cmbCategoria.getSelectedItem());
				dispose();
			}
		});
	}
	
	// METODOS
	
}
